In wireless communication systems, the ability to provide secure, confidential transmissions and the ability to verify the integrity of the transmissions become highly important tasks as these systems move towards next generation voice and data services. Secure wireless transmissions may be achieved by applying confidentiality and integrity algorithms to encrypt and authenticate the information to be transmitted. For example, the 3rd Generation Partnership Project (3GPP) provides standardized specifications for an f8 confidentiality algorithm and for an f9 integrity algorithm for wireless applications (3GPP, Technical Specification Group Services and System Aspects, 3G Security, Specification of the 3GPP Confidentiality and Integrity Algorithms, Document 1, f8 and f9 Specifications, Release 5-3GPP TS 35.201 V5.0.0, 2002-06).
The f8 confidentiality algorithm and the f9 integrity algorithm are both based on the KASUMI algorithm. The f8 confidentiality algorithm or confidentiality function is a stream cipher, that is, it is a block cipher with a block length of one, which may be used to encrypt/decrypt blocks under a confidentiality key, CK. The block of data may be between 1 and 20000 bits long, for example. The f8 confidentiality algorithm may use the KASUMI algorithm in an output feedback mode (OFB) to operate as a key stream generator. The f9 integrity algorithm or integrity function may be utilized to generate a 32-bit message authentication code (MAC) for a given message using an integrity key (IK). The f9 integrity algorithm may be utilized to generate an authentication code that ensures the integrity of signaling data or signaling messages in Wideband Code Division Multiple Access (WCDMA) applications, for example. The f9 algorithm may utilize the KASUMI algorithm in cipher block chaining message authentication code (CBC-MAC) mode.
The KASUMI algorithm is a symmetric block cipher with a Feistel structure or Feistel network, which produces a 64-bit output from a 64-bit input under the control of a 128-bit key (3GPP, Technical Specification Group Services and System Aspects, 3G Security, Specification of the 3GPP Confidentiality and Integrity Algorithms, Document 2, KASUMI Specification, Release 5-3GPP TS 35.302 V5.0.0, 2002-06). Feistel networks and similar constructions are product ciphers and may combine multiple rounds of repeated operations, for example, bit-shuffling functions, simple non-linear functions, and/or linear mixing operations. The bit-shuffling functions may be performed by permutation boxes or P-boxes. The simple non-linear functions may be performed by substitution boxes or S-boxes. The linear mixing may be performed using XOR operations.
Implementing the f9 integrity algorithm to authenticate messages may require ciphering architectures that provide fast and efficient execution in order to meet the transmission rates, size and cost constraints required by next generation voice and data services, and mobile systems. Because of its complexity, implementing the f9 integrity algorithm in embedded software that may be executed by a general-purpose processor utilized in a system-on-chip (SOC) or by a digital signal processor (DSP), may not provide the speed or efficiency necessary for fast secure transmissions in a wireless communication network. Moreover, these processors may need to share some of their processing or computing capacity with other applications needed for data processing and/or transmission, further limiting processing resources available for authentication applications. The development of cost effective integrated circuits (IC) capable of accelerating the speed with which authentication may be achieved by the f9 integrity algorithm is necessary for the deployment next generation voice and data services.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.